#/*************************************************************************
#    > File Name: calc/calc_MG.py
#    > Author: Yan Wang
#    > Mail: wangyan@imnu.edu.cn
#    > Created Time: 2022年07月21日 星期四 16时36分28秒
# ************************************************************************/
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from calc_setting import * 

# 根据需要分解的node_num 将MG中的模拟文件夹拷贝 node_num份，
if not os.path.exists(MG_original_folder):
	print("Error: In MG step: there is no MG original folder")

print("The based MG process is :", MG_original_folder)
for file_name in MG_split_event_folder:
	if not os.path.exists(file_name):
		Copy_File(MG_original_folder,file_name)
	else:
		event_folder=file_name+"/Events"
		if not os.path.exists(event_folder):
			Create_Folder(event_folder)
print("It has been copied into following folders:", MG_split_event_folder)


# 生成MG中param的scan文件, 并拷贝至 MG_split_event_folder 定义的文件夹的 Cards/ 中
input_value_list=Get_Maplist_Key(MGparam_replace_value)
input_dict=Make_DictList_from_DF(param_df, node_num, input_value_list, param_length)
param_file_list=Generate_MG_Scan_ParamCard_from_Dict(input_dict, param_source, MGparam_replace_value, MGparam_label_value, param_general_file_name)


# 根据需要将标准参数文件，复制到需要计算的文件夹中
for num in range(node_num):
	Copy_File(param_file_list[num],MG_split_event_folder[num]+"/Cards/param_card.dat")
	Copy_File(MG_run_card,MG_split_event_folder[num]+"/Cards/run_card.dat")
	Copy_File(MG_delphes_card,MG_split_event_folder[num]+"/Cards/delphes_card.dat")

# 进入各个节点运行 MG
# 首先将进入每个节点后需要执行的命令，写到 MG_command 列表中， MG_command 的长度与 节点数相同， 也与MG中新拷贝的文件夹数目相同
#MG_command=[]
#for index_f, file_name in enumerate(MG_split_event_folder):
#	ssh_para={}
#	ssh_para["node_name"]=node_name[index_f]
#	ssh_para["command"]="source ~/.zshrc ; {fdir}/bin/generate_events -f".format(fdir=file_name)
#	MG_command.append(ssh_para)


# 进入各个节点运行 MG
#Parallel_Running(Run_Command_with_SSH,MG_command)



print(MG_para["original_folder"])
print(MG_para["split_event_folder"])
print(MG_para)
Generate_MG_Events(MG_para["original_folder"], MG_para["split_event_folder"], MG_para,mg_event_method,[2,3,6,76])


#Generate_MG_Events(MG_para["original_folder_nocut"], MG_para["split_event_folder_nocut"], MG_para,mg_event_method)
